package cn.icanci.loopstack.plugin.dalgen.engine;

import cn.icanci.loopstack.plugin.dalgen.model.ClassInfoVO;

/**
 * 执行引擎接口
 * 
 * @author icanci
 * @since 1.0 Created in 2022/05/13 17:30
 */
public interface GeneralEngine {
    /***
     * 执行器执行
     * @param path 文件路径
     */
    void execute(String path);

    /**
     * 生成持久层类
     *
     * @param classInfo classInfo
     */
    void genRepositoryClass(ClassInfoVO classInfo);

    /**
     * 生成持久层xml
     *
     * @param classInfo classInfo
     * @param module db模块
     */
    void genRepositoryXml(ClassInfoVO classInfo, String module);

    /**
     * 生成映射Mapping类
     *
     * @param classInfo classInfo
     * @param module db模块
     */
    void genMapstructClass(ClassInfoVO classInfo, String module);

    /**
     * 生成实体
     *
     * @param classInfo classInfo
     */
    void genEntity(ClassInfoVO classInfo);

    /**
     * 生成实体VO
     * 
     * @param classInfo classInfo
     */
    void genMapstructEntity(ClassInfoVO classInfo);

}
